/*
  Me函数
  题目描述
    对于一个由有限个非负整数组成的数列 X，我们定义 Me(X) 为数列中不包含的最小非负整数。
    例如，Me((0,0,1,3)) = 2，Me((1)) = 0，Me(()) = 0。

    给定一个长度为 N 的数列 S = (S1, …, SN)，其中每个元素均为 0 或 1。
    要求计算满足以下条件的长度为 N 的数列 A = (A1, A2, …, AN)的数量，并对结果取模 998244353：
      1、0 <= Ai <= M
      2、对于所有 i (1 <= i <= N)，
         如果 si = 1，则 Ai = Me((A1, A2, ..., A{i-1}));
         如果 si = 0，则 Ai 不等于 Me((A1, A2, ..., A{i-1}))。
  输入描述
    第一行两个整数 N 和 M
    第二行 N 个整数表示 S1 到 SN
  输出描述
    所求满足条件的序列种数，结果对 998244353 取模
  样例1
    输入
      4 2
      1 0 0 1
    输出
      4
  样例2
    输入
      10 1000000000
      0 0 1 0 0 0 1 0 1 0
    输出
      587954969
  提示
    1 <= N <= 5000
    0 <= M <= 1000000000
    Si 只为 0 或 1
*/